package com.company;

import java.util.HashMap;

/*
* HashMap 是一个散列表，它存储的内容是键值对(key-value)映射。

HashMap 实现了 Map 接口，根据键的 HashCode 值存储数据，具有很快的访问速度，最多允许一条记录的键为 null，不支持线程同步。

HashMap 是无序的，即不会记录插入的顺序。

HashMap 继承于AbstractMap，实现了 Map、Cloneable、java.io.Serializable 接口。
*/
public class C04HashMap {
    public static void main(String[] arg){
        // 创建 HashMap 对象 Sites
        HashMap<Integer, String> Sites = new HashMap<Integer, String>();
        // 添加键值对
        Sites.put(1, "Google");
        Sites.put(2, "Runoob");
        Sites.put(3, "Taobao");
        Sites.put(4, "Zhihu");
        Sites.put(null, "");
        System.out.println(Sites);


//        我们可以使用 get(key) 方法来获取 key 对应的 value:
//        我们可以使用 remove(key) 方法来删除 key 对应的键值对(key-value)
//        如果要计算 HashMap 中的元素数量可以使用 size() 方法：
//        可以使用 for-each 来迭代 HashMap 中的元素。
//        如果你只想获取 key，可以使用 keySet() 方法，然后可以通过 get(key) 获取对应的 value，如果你只想获取 value，可以使用 values() 方法
        // 输出 key 和 value
        for (Integer i : Sites.keySet()) {
            System.out.println("key: " + i + " value: " + Sites.get(i));
        }
        // 返回所有 value 值
        for(String value: Sites.values()) {
            // 输出每一个value
            System.out.print(value + ", ");
        }
//
//
//
//
//
//
//
//
//
    }
}
